package com.cloudkinto.service.order.claim;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cloudkinto.bo.claim.ClaimAddBo;
import com.cloudkinto.bo.claim.ClaimOperate;
import com.cloudkinto.bo.claim.ClaimQueryBo;
import com.cloudkinto.common.web.PageResult;
import com.cloudkinto.common.web.SingleResult;
import com.cloudkinto.entity.ClaimDo;
import com.cloudkinto.vo.claim.ClaimDetailVo;
import com.cloudkinto.vo.claim.ClaimVo;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;

/**
 * <p>
 * 入库认领主表 service接口
 * </p>
 *
 * @author long
 * @since 2024-11-18
 */
public interface ClaimService extends IService<ClaimDo> {

    SingleResult<Map<String, Object>> addInit(Long userId, Long tenantId, String source, Long whId);

    void add(ClaimAddBo req, Long userId);

    int delete(Long id, Long userId);

    ClaimDetailVo detail(Long id);

    SingleResult<Map<String, Object>> pageInit(Long userId, Long tenantId, Long companyId, String source);

    PageResult<ClaimVo> getListPage(ClaimQueryBo bo);

    void cancel(Long id);

    void claimOperate(ClaimOperate bo, Long claimCompanyId);

    SingleResult<Map<Integer, Integer>> getListPageStatusStatistics(ClaimQueryBo bo);

    void exportWms(ClaimQueryBo bo, HttpServletResponse response) throws IOException;

    void exportOms(ClaimQueryBo bo, HttpServletResponse response) throws IOException;
}
